Repository navigation
feat: массовые действия участников и экспертов программы - #804
Merged
Merged
Conversation
13 tasks done
9 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что изменено
Организатор может выбрать все записи по текущим фильтрам, выгрузить выбранных участников и удалить их регистрацию только в этой программе. Удаление лидера требует подтверждения точного списка заявок; аккаунт, общий проект, команда, другие программы и история оценок сохраняются.
Зачем
Поддержать меню строк и массовые операции панели управления вместо одиночных плавающих плашек. Страницы участников и проектов по умолчанию содержат 20 записей.
Реализация
Подписанный preview действует 15 минут и привязан к программе, организатору, участникам, заявкам, назначениям и оценкам. Удаление повторно проверяет права и снимок под блокировками Project → программы → регистрации. Удаляются только регистрации, связи проектов этой программы и их активные назначения; общий Project, Collaborator и ProjectScore остаются. Повторное или устаревшее подтверждение возвращает 409.
API
management/participants/selection/,management/projects/selection/: все ID по тем же фильтрам, независимо от limit/offset; проекты возвращают ID заявки и глобальный project_id.management/participants/export/с ids; прежний GET экспорта остается.management/participants/remove-preview/, затемmanagement/participants/remove/с ids и preview_token.management/experts/bulk/: кейсы, повторная отправка или отзыв приглашений. Вся выборка проверяется атомарно по membership/revision; почтовые задачи ставятся после commit.evaluation=all|evaluated|not_evaluatedиспользует существующий расчет готовности. Частично оцененные относятся к неоцененным.UI
В Angular #467: меню трех точек, чекбоксы и плавающие массовые действия. Макет: вариант 3.
Permissions
Все новые операции доступны только управляющим данной программой. Права проверяются до payload validation; чужие ID, неполный набор, принятые приглашения и устаревшая revision отклоняются без частичных записей или отправок.
Проверки
manage.py test partner_programs project_rates projects --keepdb --noinput— 743 passed, включая конкурентное удаление одного preview.Acceptance criteria
Не проверено
Изменяющие операции с реальными dev-пользователями и настоящая отправка писем не выполнялись. Опубликованные Angular assets проверены с изолированным API; настоящие dev API/SPA маршруты проверены 10 анонимными GET-запросами.
Риски / migration
Выкатить API первым, затем Angular. Миграции и изменения данных при деплое не требуются. Заявки лидеров удаляются только после явного подтверждения организатором; оцененные заявки также перечислены в предупреждении.